// 1. 初始化云环境
wx.cloud.init({ env: 'itcast-zftt8' })
// 2. 连接云数据库
const db = wx.cloud.database()
// 3. 打开 lol 集合
const lolCollection = db.collection('lol')

let timerId
Page({
  data: {
    list: [],
    hasMore: true,
    keyword: '',
  },
  goToDetailHandle(e) {
    const { _id } = e.currentTarget.dataset
    wx.navigateTo({ url: '/pages/detail/detail?_id=' + _id })
  },
  // 真删除英雄
  async removeHeroHandle(e) {
    // console.log(e.currentTarget.dataset)
    const { _id } = e.currentTarget.dataset
    // console.log(_id)
    const res = await lolCollection.doc(_id).remove()
    console.log(res)
    this.setData({ list: [] })
    wx.showLoading({ title: '疯狂加载中...' })
    await this.getHeroList()
    wx.hideLoading()
  },
  // 输入框值发生改变的时候获取输入框的值
  changeHandle({ detail }) {
    detail = detail.trim()
    // 防抖技术：定时器结束后，才发送网络请求
    clearTimeout(timerId)
    timerId = setTimeout(async () => {
      // console.log(detail)
      const { data } = await lolCollection
        .where({
          // 利用正则表达式，查找包含关键词的英雄
          title: new RegExp(detail),
        })
        .get()
      // console.log(res)
      this.setData({ keyword: detail, list: data })
    }, 500)
  },
  async getHeroList() {
    if (this.data.hasMore) {
      // 获取数组的长度，分页的时候跳过之前取过的数据长度
      const length = this.data.list.length
      // 查询 lol 集合的数据
      const { data } = await lolCollection
        .where({
          title: new RegExp(this.data.keyword),
        })
        .skip(length)
        .limit(20)
        .get()
      if (data.length) {
        // console.log(data);
        // 分页需要把新旧两份数组拼接起来
        this.setData({ list: [...this.data.list, ...data] })
      } else {
        this.setData({ hasMore: false })
      }
    } else {
      wx.showToast({ title: '没有数据了...' })
    }
  },
  // 页面加载时
  onLoad() {
    this.getHeroList()
  },
  // 页面滚动触底时
  async onReachBottom() {
    wx.showLoading({ title: '疯狂加载中...' })
    await this.getHeroList()
    wx.hideLoading()
  },
})
